Some types of data, for example, digital video data, may be compressed prior to being transmitted via a communication network, e.g., including a wireless channel, from a transmitter, or source, of data, e.g., a video source, to a receiver, or destination, of the data, e.g., a video destination. In general, the greater the compression, the more sensitive the transmission is to losses. For example, a highly compressed digital video will be more sensitive to packet loss than an uncompressed digital video or a lesser-compressed digital video. The effect of packet loss on compressed digital video may result in visible artifacts, e.g., “frozen” frames or blocks, black frames, blurring, ghosting, missing pixels, jerkiness, and the like. Digital video encoded using temporal coding techniques may be more sensitive to losses, for example, due to the fact that decoding a particular frame often requires data from previous, or previous and future, frames. Accordingly, the loss of a single packet may result in visible artifacts beyond a single frame. In extreme cases, all frames that rely on a lost packet may be “frozen”, e.g., until a complete refresh frame is received.
Video rate adaptation may be implemented to adapt a video-encoding rate to account for the packet loss and/or for network congestion. In video rate adaption, it may be imperative to react quickly to network congestion, e.g., to avoid packet loss, which may result in a long video freeze due to the predictive nature of video compression.
Implementing a “pessimistic approach”, which does not recover fast from a congestion event will result in not utilizing a full capacity of the network, which, in turn, may result in poor video quality due to compression artifacts.
Delay-based rate-adaptation algorithms may use end-to-end (e2e) delay measurements of sets of successive packets or video frames to provide a warning of impending congestion and packet drops. For example, explicit Real-time Transport Control Protocol (RTCP) probe pair packets may be used for initial or repeated bandwidth estimations.
However, existing delay based congestion detection heuristics fail to provide an accurate and reliable bit rate adaptation, e.g., in highly dynamic network conditions. The existing delay-based rate adaptation algorithms are prone to unpredictable behavior and/or exhibit poor fairness, for example, when required to fairly share a bottleneck bandwidth with concurrent flows.
For example, some rate adaptation algorithms, which are configured to operate with a maximum rate constraint or a delta rate constraint, may be blind to network instability, and may result in delay fluctuations, for example, when uncoordinated multi-flows operate on the same network. Other rate adaptation algorithms may utilize state driven mechanisms, which may be configured to mitigate unstable behavior by attempting to predict network conditions in a finite state machine. Such state-driven mechanisms may be cumbersome and/or fail to converge. In practice, a resulting flow rate of such mechanisms tends to toggle between flow starvation, i.e., underutilization of network capacity, and flow rate “swings”, both having significant impact on perceived video quality.